package online.longzipeng.back.service;

import online.longzipeng.back.pojo.entity.Team;
import online.longzipeng.back.pojo.entity.TeamMessage;
import online.longzipeng.back.pojo.param.TeamDeleteParam;
import online.longzipeng.back.pojo.param.TeamQueryParam;
import online.longzipeng.back.pojo.vo.TeamMessageVo;
import online.longzipeng.back.pojo.vo.TeamVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author lzp
 */
public interface TeamService {

    /**
     * 新增或保存团队
     */
    void save(Team team);

    /**
     * 加入团队
     */
    void join(Long teamId, Long userId);

    /**
     * 解散团队
     */
    void delete(Long teamId);

    /**
     *
     */
    List<TeamVo> list(@Param("param") TeamQueryParam param);

    /**
     * 邀请加入团队
     */
    void invite(TeamMessage teamMessage);

    /**
     * 团队详情
     */
    TeamVo detail(Long id);

    /**
     * 获取当前登录用户的所有团队消息
     *
     */
    List<TeamMessageVo> getTeamMessages();

    /**
     * 删除团队中对应的用户
     */
    void deleteUsers(TeamDeleteParam param);

    /**
     * 删除消息
     */
    void deleteMessage(Long id);

    /**
     * 处理消息
     */
    void handleMessage(Long id, Integer status);
}
